home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 4 / ETO Development Tools 4.iso / Tools - Objects / MacApp / MacApp 3.0a2 / Libraries / UDebug.a < prev    next >
Encoding:
Text File  |  1991-05-01  |  4.7 KB  |  110 lines  |  [TEXT/MPS ]

  1. ; Copyright © 1987-1990 by Apple Computer, Inc.  All rights reserved.
  2. ; UDebug assembly language routines
  3.  
  4.                 Blanks        On
  5.                 String        AsIs
  6.                 Case        On
  7.  
  8.                 Print        Off
  9.                 Include     'Macros.a'
  10.  
  11.                 LOAD            'ProgStrucMacs.d'
  12.                 LOAD            'FlowCtlMacs.d'
  13.                 Print        On
  14.  
  15.     IF qDebug then
  16.                 Import        DEBUGEXCEPTION        ; in UDebug
  17.  
  18. XDEBUGSYSERROR    Proc        Export                ; SysError(errorCode: integer) [arg is in Reg D0]
  19.                 Clr.L        -(SP)                ; leave room for DEBUGException to leave our continuation address
  20.                 MoveM.L     A0-A7/D0-D7,-(SP)    ; save registers
  21.                 Move.W        D0,-(SP)            ; push errorCode On stack to call Pascal
  22.                 Jsr         DEBUGEXCEPTION        ; call a Pascal routine
  23.                 MoveM.L     (SP)+,A0-A7/D0-D7    ; restore registers
  24.                 Rts                             ; leave things just as they were when we started, And go to debugger
  25.                 EndProc
  26.  
  27.                 Seg         'MADebugger'                ; MUST BE IN Main SEGMENT
  28. XDEBUGBUSERROR    Proc        Export                ; Bus error
  29.                 Clr.L        -(SP)                ; leave room for DEBUGEXCEPTION to leave our continuation address
  30.                 MoveM.L     A0-A7/D0-D7,-(SP)    ; save registers
  31.                 Move.W        #902,-(SP)            ; push errorCode On stack to call Pascal
  32.                 Jsr         DEBUGEXCEPTION        ; call a Pascal routine
  33.                 MoveM.L     (SP)+,A0-A7/D0-D7    ; restore registers
  34.                 Rts                             ; leave things just as they were when we started, And go to debugger
  35.                 EndProc
  36.  
  37.                 Seg         'MADebugger'                ; MUST BE IN Main SEGMENT
  38. XDEBUGADDRERROR    Proc        Export                ; Address error
  39.                 Clr.L        -(SP)                ; leave room for DEBUGEXCEPTION to leave our continuation address
  40.                 MoveM.L     A0-A7/D0-D7,-(SP)    ; save registers
  41.                 Move.W        #903,-(SP)            ; push errorCode On stack to call Pascal
  42.                 Jsr         DEBUGEXCEPTION        ; call a Pascal routine
  43.                 MoveM.L     (SP)+,A0-A7/D0-D7    ; restore registers
  44.                 Rts                             ; leave things just as they were when we started, And go to debugger
  45.                 EndProc
  46.  
  47.                 Seg         'MADebugger'                ; MUST BE IN Main SEGMENT
  48. XDEBUGILLINST     Proc        Export                ; Illegal Instruction
  49.                 Clr.L        -(SP)                ; leave room for DEBUGEXCEPTION to leave our continuation address
  50.                 MoveM.L     A0-A7/D0-D7,-(SP)    ; save registers
  51.                 Move.W        #904,-(SP)            ; push errorCode On stack to call Pascal
  52.                 Jsr         DEBUGEXCEPTION        ; call a Pascal routine
  53.                 MoveM.L     (SP)+,A0-A7/D0-D7    ; restore registers
  54.                 Rts                             ; leave things just as they were when we started, And go to debugger
  55.                 EndProc
  56.  
  57.                 Seg         'MADebugger'                ; MUST BE IN Main SEGMENT
  58. XDEBUGZERODIV     Proc        Export                ; Zero Divide
  59.                 Clr.L        -(SP)                ; leave room for DEBUGEXCEPTION to leave our continuation address
  60.                 MoveM.L     A0-A7/D0-D7,-(SP)    ; save registers
  61.                 Move.W        #905,-(SP)            ; push errorCode On stack to call Pascal
  62.                 Jsr         DEBUGEXCEPTION        ; call a Pascal routine
  63.                 MoveM.L     (SP)+,A0-A7/D0-D7    ; restore registers
  64.                 Rts                             ; leave things just as they were when we started, And go to debugger
  65.                 EndProc
  66.  
  67.                 Seg         'MADebugger'                ; MUST BE IN Main SEGMENT
  68. XDEBUGCHECK        Proc        Export                ; Chk
  69.                 Clr.L        -(SP)                ; leave room for DEBUGEXCEPTION to leave our continuation address
  70.                 MoveM.L     A0-A7/D0-D7,-(SP)    ; save registers
  71.                 Move.W        #906,-(SP)            ; push errorCode On stack to call Pascal
  72.                 Jsr         DEBUGEXCEPTION        ; call a Pascal routine
  73.                 MoveM.L     (SP)+,A0-A7/D0-D7    ; restore registers
  74.                 Rts                             ; leave things just as they were when we started, And go to debugger
  75.                 EndProc
  76.  
  77.                 Seg         'MADebugger'                ; MUST BE IN Main SEGMENT
  78. XDEBUGOVERFLOW    Proc        Export                ; TrapV
  79.                 Clr.L        -(SP)                ; leave room for DEBUGEXCEPTION to leave our continuation address
  80.                 MoveM.L     A0-A7/D0-D7,-(SP)    ; save registers
  81.                 Move.W        #907,-(SP)            ; push errorCode On stack to call Pascal
  82.                 Jsr         DEBUGEXCEPTION        ; call a Pascal routine
  83.                 MoveM.L     (SP)+,A0-A7/D0-D7    ; restore registers
  84.                 Rts                             ; leave things just as they were when we started, And go to debugger
  85.                 EndProc
  86.  
  87.                 Seg         'MADebugger'                ; MUST BE IN Main SEGMENT
  88. XDEBUGLINEF        Proc        Export                ; Line 1111 traps
  89.                 Clr.L        -(SP)                ; leave room for DEBUGEXCEPTION to leave our continuation address
  90.                 MoveM.L     A0-A7/D0-D7,-(SP)    ; save registers
  91.                 Move.W        #911,-(SP)            ; push errorCode On stack to call Pascal
  92.                 Jsr         DEBUGEXCEPTION        ; call a Pascal routine
  93.                 MoveM.L     (SP)+,A0-A7/D0-D7    ; restore registers
  94.                 Rts                             ; leave things just as they were when we started, And go to debugger
  95.                 EndProc
  96.  
  97. ;                Seg         'MADebugger'                ; MUST BE IN Main SEGMENT
  98. ;                .Proc         XDEBUGNMI            ; NMI (level 7)
  99. ;                Clr.L         -(SP)                ; leave room for DEBUGEXCEPTION to leave our continuation address
  100. ;                MoveM.L     A0-A7/D0-D7,-(SP)    ; save registers
  101. ;                Move.W        #900,-(SP)            ; push errorCode On stack to call Pascal
  102. ;                Jsr         DEBUGEXCEPTION        ; call a Pascal routine
  103. ;                MoveM.L     (SP)+,A0-A7/D0-D7    ; restore registers
  104. ;                Rts                             ; leave things just as they were when we started, And go to debugger
  105. ;                EndProc
  106.  
  107.     Endif
  108.  
  109.                 End
  110.